package com.webwork.mood.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;

public class CommonTool {

	/**
	 * 格式化数值
	 * @param f 数值
	 * @param scale 保留位数
	 * @return
	 */
	public static double FormatDecimal(final double f, int scale) {
		BigDecimal b = new BigDecimal(f);
		double f1 = b.setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
		return f1;
	}

	/**
	 * 创建文件或文件夹
	 * @param fileFolder
	 * @param fileName
	 * @return
	 */
	public static File fileCreate(String fileFolder, String fileName) {
		File folder = new File(fileFolder);
		File file = new File(fileFolder + "/" + fileName);
		//如果文件夹不存在，则创建文件夹
		if (folder.exists() == false) {
			folder.mkdirs();	//多级目录
//			foder.mkdir();	//只创建一级目录
		}
		//如果文件不存在，则创建文件
		if (file.exists() == false) {
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return file;
	}
	
	/**
	 * 删除文件或文件夹
	 * @param file
	 */
	public static void deleteFile(File file) {
		if (file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				deleteFile(f);
			}
			file.delete();
		} else if (file.isFile()) {
			file.delete();
		}
	}
	
	/**
	 * 输出xml文件
	 * @param is
	 * @param file
	 * @throws IOException
	 */
	public static void writeXml(InputStream is, File file) throws IOException {
		FileOutputStream fos = null;
		file = fileCreate(file.getParentFile().getAbsolutePath(), file.getName());
		try {
			//打开一个已存在文件的输出流
			fos = new FileOutputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		//将输入流is写入文件输出流fos中
		int ch = 0;
		try {
			while ((ch = is.read()) != -1) {
				fos.write(ch);
			}
		} finally {
			fos.close();
			is.close();
		}
	}
	
}
